#include "picbutton.h"

PicButton::PicButton(QWidget *parent): QPushButton(parent)
{

}

void PicButton::setIcons(const QString &normal, const QString &hover, const QString &pressed)
{
    _normal = normal;
    _hover = hover;
    _pressed = pressed;

//    绘图对象
    QPixmap tmpPixmap;
//    加载图片
    tmpPixmap.load(normal);
//    将按钮的大小修改为图片的大小
    this->resize(tmpPixmap.size());
//    设置图标
    this->setIcon(tmpPixmap);
//    强制按钮的正常显示、悬浮、按下时大小不变；防止出现意外导致按钮大小变化了
    this->setIconSize(tmpPixmap.size());
}

bool PicButton::event(QEvent *e)
{
    switch (e->type()) {
    case QEvent::Enter:
            setHoverIcon();
        break;
    case QEvent::Leave:
            setNormalIcon();
        break;
    case QEvent::MouseButtonPress:
            setPressedIcon();
        break;
    case QEvent::MouseButtonRelease:
            setHoverIcon();
        break;
    default:
        break;
    }
    return QPushButton::event(e);
}

void PicButton::setNormalIcon()
{
    //    绘图对象
        QPixmap tmpPixmap;
    //    加载图片
        tmpPixmap.load(_normal);
    //    设置图标
        this->setIcon(tmpPixmap);
}

void PicButton::setHoverIcon()
{
    //    绘图对象
        QPixmap tmpPixmap;
    //    加载图片
        tmpPixmap.load(_hover);
    //    设置图标
        this->setIcon(tmpPixmap);
}

void PicButton::setPressedIcon()
{
    //    绘图对象
        QPixmap tmpPixmap;
    //    加载图片
        tmpPixmap.load(_pressed);
    //    设置图标
        this->setIcon(tmpPixmap);
}
